The Game Project
This page is not finished as well.
I love Role Playing Games. I also love strategic
games like the XCOM series, tactical games like Dune2, and I also like
to trade and fight among stars in Elite. However, it seems that there is
no game that has it all, but I can see no reason for that, except for the
game's complexity and size. This page is intended to help to motivate good
programmers to write such a game.
Graphics
The game will need graphics engine that can render lying
equipment, fighting humans, trees, flowing water, towns, planets, starships,
stars, and EVERYTHING AT ONCE. There are engines that allow you to travel
in Solar system and land at planets and space stations (Frontier), and
there are also engines that can draw very complex scenes at one scale (Unreal).
However, in a perfect game, you should be able to fly from Mars to Earth,
watch the stars and landing manoeuvres through a window, and then break
the window and go to a cave to fight mutants. Today's 3D graphics cards
are useless for this, due to limited z-buffer depth, limited RAM, and the
inability to render complex shapes (e.g. NURBS surfaces). The ways to handle
complex scenes fast are discussed in The
Computer Graphics Project.
Programming Environment
Due to the size of the game's code and data, it will
be necessary to use _something_ that will allow rapid development-testing-fixing
cycle. The best way I can see is the Smalltalk environment, of which SELF
is a clone. Some advantages over C or C++:
-
Smalltalk never crashes; if something causes troubles, a Debugger pops
up. You can investigate sources and variables, modify them both, and restart
from the changed place - there is no need to rerun the whole program. Very
nice feature.
-
In Smalltalk, code's sources are clearly organized.
Time critical sections can be written in other languages
and added to the Virtual Machine. Further advantages of Smalltalk over
C and of SELF over Smalltalk are discussed in The
Programming Language Project.
Others
Of course, there are more problems than the graphics
engine and a programming language. However, they should be rather easy:
-
Sounds: It can be connected to higher levels of graphics engine to determine
positions of objects that can cause sounds, and use already developed 3D
sounds and MP3 compression. To reach super-realistic sounds, sound spreading
simulation would be necessary. However, it is much more complicated than
the light spreading, due to diffraction and transparency. As I know, this
hasn't been solved at all.
-
Physical simulation: This is very hard part. In fact, is was faked everywhere
I have seen. Even "realistic" explosions, where the parts of the exploding
object fall down to ground, are faked -- the division of the object to
parts is predefined. Even the best today's graphics programs do only collision
detection. Proper physical simulation requires volume simulation, which
is a) very computationaly intensive and very inaccurate, b) extremely computationally
intensive and still not accurate. The only promising algorithm is the Flexi-matter,
but they do not seem to show any progress for last two years.
-
Informational simulation: It simulates the high-level events, something
like Simcity and such. It should simulate economy, demography etc. of the
whole universe. I believe that with good object-oriented game's universe
model, the only problem is CPU speed. I will try to describe the model
in the rest of this page.
The game model
In newer fantasy computer games, there appears more
or less Elements. It allows sorting the spells into categories. Developing
it further, there could be a single spell "Protect from element", in e.g.
4 variants. I tried to match the Fire, Air, Water and Earth to the physical
reality and result is the following 12 elements:
| Fire |
fireballs; plasma; other hot items |
| Cold |
cold gases, liquids, items |
| Electricity & Magnetism |
lightning; time-varying magnetic fields inducing electric current and
warming the item |
| Light |
lasers; invisibility spell |
| Acids |
both liquids and gases that destroy materials |
| Venoms |
biological venoms, affecting only living creatures |
| Holy |
harming undead creatures, helping the living ones |
| Unholy |
harming living creatures, helping the undead ones |
| Neutron |
radiation; affects both materials and beings |
| Psionic |
telepathy; enemy's mind control; identify enemy |
| Gravity |
flying and stopping others from flying by changing weight |
| Mechanical |
physical damage |
I believe that everything that is possible via magic
should be reachable via high technology, and vice versa. Thus, there is
no magical-only damage.
The Gravity and Mechanical elements are subjects
to further investigation.
The player
A player should be able to use items, walk, ride, jump,
fly, swim, use transportation vehicles and much more. Also, NPCs should
be very common, and willing to join the player.
A player model is subject to constant upgrades today.
There are two directions -- simple and complicated. The simple model is
enough for strategic games with many characters, where you need to quickly
find the strengths and weaknesses of the character. Typical statistics
set is: Hit points, 4 skills, and for fantasy games Level and Spell points.
However, if you had only one player, this would be too brief. I also do
not like character classes, where a Sorcerer can not take a sword and use
it. Instead there can be a rule like this: "Anybody touching a metal loses
all Spell points." I believe that classes are an artefact of early stages
of the character model, where it was necessary to disable a superwarrior
with superspells. As the skills have been introduced, I can see no more
reasons for classes to exist: nobody has time to develop all the
skills to a super-level. You can choose to improve fighting, stealing,
spellcasting or negotation, or all of them, but a specialist will always
have higher skill than a multipurpose character with the same experience,
while a very experienced player can do _everything_ better than a newbie.
Some hard RPG fans do not think the same; one of Dungeon Masters I know
quickly kills all the beginning non-specialists. I think that he is not
right.
On the other side, there can be more races than
only one. It shouldn't be limited to typical humanoid races: humans, dwarves,
orcs, gnomes, trolls, giants. It could be really funny to have a dragon
in your party.
So, the model. I believe that it should be very
complicated (as realistic as possible), with skill hierarchies, so that
you can examine the character at any level you want. If you play as an
army leader, you can watch only Hit points, speed and armor class of your
troops; if you play as that trooper, you may want to distinguish if you
were hit in your left arm or in your head. Hit points are not precise enough
for this, but are a good adept for one of higher-level statistics.
This being explained, I can finally list the skills
I have already encountered and considered useful.
This is in a pre-draft stage.
Body +--+ health
| +--Condition (a map of body surface
or volume)
| +--Armor condition (a map of body
surface)
| +--+ Strength and Speed (where
strength*speed is max)
| +--a set of
body's muscles' strength vs. speed diagrams
|
| +--+ Fatigue long term (hours
and days)
| +--a map of
muscles
|
| +--+ Fatigue short term (minutes)
| +--a map of
muscles
|
| +--+ metabolism
| +--power of
heart
| +--power of
lungs
| +--+ fatigue
rate of muscles
|
+--a map
|
| +--+ regeneration
rate of muscles
|
+--a map
|
| +--+ healing
rate (wounds, not fatigue)
|
+--a map
|
| +--oxygene capacity
of blood
| +--and much
more
|
+--+ Armor
+--+ Armor strength
+--Armor
resistance against Fire
+--
-"- Cold
+--
-"- Acids
+--
and more, see elements
Externals +--reliability +--Rank at Earth's army
+--Rank at Wizard's Union
+--Rank at XCOM2
+--Rank at Syndicate
Explanations:
XCOM2: Since the name Xcom is
a registered trademark or something, I use name XCOM2.
If you have better overall idea on a character model,
skill groups or skills, write them down and e-mail me; if it would be a
good idea, I will use it. However, I prefer that you create your own page
(e.g. at www.fortunecity.com)
and e-mail me it's location. I will then put a link here.
Organizations
XCOM2, Syndicate, Earth's army, Wizard's Union
Equipment
Armor, weapons, vehicles, miscellaneous.
Up: The Advanced Projects Page
Last revised on September 17, 1998.
Last modified on September 17, 1998, at 15:43.